1) "Mark Selection" now always outlines in white and always draws the label in black with a white background.
2) The number of X-Y coordinate pairs that can be recorded using the pointing tool was increased from 200 to 400.
3) Image is now less likely to crash when arbitrary text files(e.g., a macro) is opened using the Convolve command.
4) The Shadow command is now back in the Enhance menu.
5) The brush and/or eraser tools no longer sometimes appear in the wrong colors when relaunching Image after doing "Record Preferences".
6) The Import command will now read and display two-dimensional arrays of numbers stored as tab-delimited text, for example, a spreadsheet saved as “Text Only”. Values do not have to be in the range 0-255, and may be in real, but not scientific, format.
7) Convolution kernels now load faster. This is most noticeable when loading kernels from a file server.
8) The lower and upper limits for the density slicing were changed from 0 and 255 to 1 and 254.
9) A problem was fixed that could cause Image to hang when outlining a density sliced image using the wand tool if the upper limit of the density slice was 255. See item (8).
10) The Analyze Particles command now correctly labels particles in spatially calibrated images.
11) The most important new feature in V1.29 is the addition of a Pascal-like macro language.
12) Selections from color images copied to the Clipboard and then pasted into another program are no longer converted to grayscale.
13) When quitting with a selection on the Clipboard, Image no longer switches to grayscale when Cancel is selected in the "Save Changes" dialog box.
14) The LUT window is now redisplayed in front in front of the Gray Map window whenever the number of extra colors is changed.
15) A new command(Make Ramp) was added to the Edit menu. It draws a grayscale ramp function within the current rectangular selection.
16) A bug was fixed that caused Image, when the freehand outlining tool was being used, to occasionally lock up.
17) When using the ruler to measure the length of an irregular path(by holding the Option key down), clicking anywhere outside the image window now terminates the measurement.
18) V1.29q fixes two bugs found in V1.29p. One caused the macro interpreter to crash if a procedure name or variable started with the letter A. The other caused the Rotate Right and Rotate Left commands to not work correctly.
V1.30 (10-August-90)
1) The Save All command(Save with Option key down) now saves all images in PICT format when you select PICT in the dialog box. Before, it would only save the first image in PICT format.
2) The macro interpreter now correctly executes FOR loops when the initial value is greater then the final value.
3) The author's e-mail address was added to the about box.
4) The Analyze/Options dialog box has a new checkbox which provides the ability to include Internal holes in area and density measurements.
5) The Halftone Options dialog box now allows arbitrary halftone screen angles to be specified. See the article "PostScript Insider Secrets" on page 293 of the July, 1990 issue of Byte magazine for examples of how this capability might be useful.
6) Newly opened uncalibrated images will be assigned an inverting calibration function if "Use 0 for black, 255 for white" is checked in the Preferences dialog box.
7) X-Y coordinate measurements made with the Pointing tool that have been copied to the Clipboard, and then pasted into an image window, are now formatted much better. However, you still must use a non-proportionally spaced font for best results.
8) The column widths used for displaying and printing measurement results are now adjusted to reflect changes made to the "Digits to the right of decimal point" field in Analyze/Options dialog box.
9) The two dialog boxes used by the Import command were combined into one.
10) Image no longer hangs when using "Analyze Particles" or the wand tool with thresholded images with a threshold level of zero.
11) The threshold level is now dynamically displayed in the Results window when adjusting the threshold in the Gray Map window.
12) Propagate LUT now works correctly for pseudo-color palettes that don't have the default 20 colors, for example, palettes with 32 colors.
13) A problem was fixed that would sometimes cause pseudo-color palettes loaded using the Open command to be displayed incorrectly.
14) Profile plots copied to the Clipboard are no longer garbled when the Plot window extends partially off screen.
15) A bug was fixed that caused various tools to not draw in a window using the current foreground and background colors, but instead, to draw in a color that had been previously used in that window.
16) Selecting "System Palette" now works as expected on the Mac IIci and Mac IIfx.
17) In the macro programming language, the number of significant characters in variable and procedure names was increased from 8 to 12.
18) Approximately forty new commands were added to the macro language.
19) New macros were written to perform the following functions: Plot gel lanes; Draw an arrow head; Generate a sine wave; Create a grayscale step function; Create a montage; Print all currently open images; Average two images; and Display measurement results.
20) The manual was converted from MacWrite 5.0 to Word 4.0 format.
V1.31 (25 September 1990)
1) Image now checks for the existence of the 68881 or 68882 floating point chip, and, if the clip is missing, puts up a dialog box and quits. This was done in anticipation of possible future Macintoshes which may be available without floating point chips. There will be a separate version of Image for these machines.
2) Image windows now open faster. This is most noticeable on the ci and fx, and when a large number of windows are being opened.
3) The 'Swap Bytes' and 'Open All' options of the SetImport macro command now work correctly.
4) A macro is now available for doing 3-D reconstruction.
5) A macro(Plot XYZ) was written for creating raster plots of X-Y coordinate data with optional intensity(Z) values.
6) The default font size was changes from 24 point to 12.
7) The maximum height of windows created with the New command(specified in Preferences) was raised from 2048 to 4096.
8) A check box(Show Reversion Movies) was added to Preferences that enables running movies in a reversing mode(1234321234) as opposed to the default wrap-around mode(123412341234).
9) A check box(Using LaserWriter 6.0) was added to Preferences that enables the grayscale and color printing capabilities of the LaserWriter 6.0 driver by turning off the PostScript halftoning that is built into Image.
10) An automatic Apply LUT is no longer done when performing filtering operations.
11) Perimeter is now displayed in calibrated units for spatially calibrated images.
12) The procedure described in the manual for analyzing electrophoretic gels has been simplified and now uses the gel plotting macros.
12) A new option(Adjust Areas) was added to the analyze/options dialog box. If Adjust Areas checked, and if the Wand tool is in auto-measure mode, the perimeter will be added to the area. This is useful for measuring areas under peaks, since adding the perimeter corrects for the tendency of the Wand tool to underestimate the size of small peaks.
13) The Wand Auto-Measure check box was moved from the Preferences dialog box to Analyze/Options, and the Wand Auto-Number check box was removed. Automatic numbering of objects measured with the Wand tool is now done whenever Number Particles is checked.
V1.32 (16 November 1990)
1) The Threshold command in the Options menu was renamed Density Slice and a new Threshold command, equivalent to clicking on the threshold icon in the Gray Map window, was added.
2) Thresholding, like density slicing, can now be controlled by clicking and dragging in the LUT window with the LUT tool.
3) A bug was fixed that caused incorrect Paste operations if the object being pasted was taller than the destination window and the destination window had been scrolled.
4) Undo Paste now works when the object being pasted is the same size as the destination image.
5) The DrawText and DrawNumber macro routines have been replaced with the more flexible Write and Writeln, which are similar to their Pascal equivalents.
6) Macro routines, such as SaveAs, that require a file name or window title now accept multiple arguments similar to Writeln in Pascal, except that numeric fields are left filled with zeros rather than spaces. As an example, SetPicName(‘PIC’,n:2) results in window titles in the form ‘PIC01’, ‘PIC02’, ‘PIC03’, etc.
7) The SaveAs macro command now only displays a dialog box the first time it is called or if no file name is specified. Two new macros(“Save All” and “Make Movie to Disk”), in the file “More Macros”, illustrate how to use the SaveAs command.
8) A new command(Save Screen) is now available in the File menu for dumping the screen to a PICT file.
9) The Gray Map function is no longer automatically reset when saving to a PICT file. The PICT file will have the same appearance when it is redisplayed, but the pixel density values will probably be different.
10) New macros have been written for: (a)doing an ASCII dump of pixel values within a selection; (b) resizing and/or rotating all currently open images; (c) periodically capturing images and storing them to disk; (d) doing background subtraction.
11) The Scale Selection and Rotate and Scale commands have been combined into a new command called Scale And Rotate. Bilinear interpolation is now 4 1/2 times faster when no rotation is required. The spatial scale is now adjusted when scaling a selection to a new window and the horizontal and vertical scale factors are the same.
12) Macros are now available to do 3D reconstruction of a set of orthogonal slices. Also, 3D reconstruction is now four or five times faster because bilinear interpolation is now done using scaled integer arithmetic and because the reconstruction macros use the new ChoosePic routine which selects images without activating them.
13) The maximum allowed size of a macro file was increased from 10,000 to 15,000 bytes, and the maximum number of macros per file was increased from 25 to 50.
14) Using the new Export command, it is now possible to export images in text(spreadsheet) and MCID formats, and to export video look-up tables.
15) The cross hair tool now records density values as well as X-Y coordinates.
16) For systems using 32-bit QuickDraw, a bug was fixed which sometimes caused paint to leak out and fill other areas when filling with the paint bucket along the right edge of images with widths that are not a multiple of 16. The problem still occurs on systems not using 32-bit QuickDraw.
17) A bug was fixed that would sometimes cause Analyze Particles to hang if Outline Particles was checked in Analyze/Options dialog box.
18) The Camera window no longer flashes white(hiccups) shortly after starting to digitize the first time using the QuickCapture card.
19) Bits and pieces of “marching ants” selections are now less likely to be left on the screen when they are dragged around windows in the Scale to Fit mode.
20) Image now does a better job of determining the background level needed to compute integrated density. Background level is now also constrained to be less than or nearly equal to the mean density and is recorded along with the integrated density. Reliable measurement of integrated density still requires that the background area within the selection be relatively large compared to object being measured.
21) Several compatibility problems relating to the Apple 8.24 GC card were fixed.
V1.33 (16 December 1990)
1) A new window is now opened for displaying 3D Plots. The size of this window is determined by New Width and New Height in Preferences.
2) The Histogram and Save Blank Field commands no longer increment the measurement counter.
3) The radio buttons in Paste Control used to specify transfer mode were converted to a pop-up menu and a check box was added to enable/disable live video. In addition, the Show Paste Control command in the Options menu was moved to the Windows menu.
4) A new curve fitting option(Rodbard) was added to the Calibrate command. This is a four parameter general curve fit function proposed by David Rodbard at NIH and implemented by Cary Mariash at the University of Minnesota. The form of the equation is: y = (D) + (A - D)/(1 + (x/C)^B).
5) Propagate Spatial Scale now correctly copies the unit of measurement to other images.
6) Several bugs, introduced in V1.32, have been fixed: Odd-width TIFF files now open correctly; The text tool now works correctly with magnified images; A problem with in-place rotation was fixed; Rotate Left and Rotate Right of odd-width images works again.
7) Window title bars are now always drawn in black and white to avoid annoying color changes when running under System 7.
8) V1.33g fixes a bug, introduced with the pop-up menu in Paste Control, that caused the DoXor, DoReplace, and DoBlend macro commands to be interpreted as DoOr, DoXor, and DoXor respectively. It also fixes a bug, introduced in V1.32, that produced a diagonal line in imported odd-width images and in some odd-width TIFF files, and another bug, also introduced in V1.32, that caused the foreground color to change to white after a Save As PICT. And one more bug, Revert to Saved is now correctly disabled with imported text files.
V1.34 (5 February 1991)
1) Image no longer crashes when processing selections wider than 2048 pixels. Instead, a dialog box announces that the operation requires a selection no wider than 2048 pixels.
2) A bug was fixed which caused measured perimeter values to be incorrect for spatially calibrated images.
3) The Measure command now correctly measures the perimeter of outlines created using the wand tool.
4) Imported images and Windows created with the New command are now allowed to be up to 4096 pixels wide.
5) The Paste Control command in the Windows menu was renamed Show Paste Control. In addition, when the Paste Control window is on the screen, it changes to Hide Paste Control. This provides a way of closing the Paste Control window when using System 7, where the close box doesn’t seem to work.
6) A dialog box separate from the open file dialog box is now used to change Width, Height, and Offset when Importing Image. This works around a bug that made it impossible to change these parameters when using System 7, and when using some INITs that modify the open file dialog box, such as Fast Find from Norton Utilities. This change also now allows you to select a file by typing the first character of its name.
7) A problem was fixed which caused odd-width 4-bit TIFF files, such as those created by the Apple scanner, to be displayed incorrectly.
8) A macro(“Import FITS” in “More Macros”) was written to read images in the FITS format favored by astronomers.
9) The values reported for major and minor axis are now twice as large as before. For a circular object, they now correspond to diameter instead radius.
10) It is now possible save(Show, Copy, Print, etc.) minimum and maximum pixel values.
11) An Other... item was added to the Text/Size submenu to allow specification of arbitrary font sizes.
12) 'Outline' was added to the Text/Style menu and 'Shadow' now works correctly.
13) A bug, introduced in V1.32, that would occasionally cause Image to crash when using the Save As command, was fixed.
V1.35 (7 February 1991)
1) A bug was fixed that sometimes caused selections wider than the destination window to be pasted incorrectly. Show Clipboard now also work as expected when the selection on the Clipboard is too large to fit on the screen.
2) A bug was fixed that would sometimes cause Image to crash on starting up if an Init known as ‘MMInit’(and possibly others) was installed.
V1.36 (15 March 1991)
1) The cross hair tool now labels using the current measurement count if the Option key is down. Alternately, it displays coordinates if the command key is down. Use the commands in the Text menu to vary font, size, etc.
2) The Run Movie command now supports Auto-repeat of the arrow keys.
3) A macro(in “More Macros”) was written to display a histogram in which the pixel count columns are drawn in the grayscale or color that that count represents.
4) A bug was fixed that could sometimes cause Image to crash when running macros that used the ShowHistogram command.
5) Image now does a better job of converting 16-bit Imported images into 8-bits. In addition, so that density slicing will work better, 16-bit images are now scaled to the range 1-254 instead of 0-255.
6) The maximum number of particles that can be analyzed can now be set in the Options dialog box. The maximum is 8000 and all 8000 lines in the results table can be exported to a text file, although the number of lines that can be displayed, printed, or copied to the Clipboard is still limited to the size of Image’s 32K text buffer. The default maximum is 200. Increasing the maximum by one reduces the memory available for images by 56 bytes.
7) The width of the columns in the Show Results window can now be set in the Options dialog box. Reducing the width allows more columns to be displayed on small screens. It also allows more rows to be displayed and printed because more will fit in the 32K text buffer..
8) The Show Results command now displays measurement in a window that remains on the screen and is updated as more measurements are made.
9) A problem with the In/Ax check box in the Options dialog box was fixed.
10) Most measurement results are now available as one-dimensional arrays from within the macro language. Several example macros(in “Measurement Macros”) were written that use this capability to derive and display new results. The arrays are named rArea, rMean, rX, rY, rMin, rMax, rLength, rMajor, rMinor, and rAngle.
11) A macro was written that counts the number of black and white pixels within the current selection.
12) Only one measurement counter is now used instead of separate counters for region, length, and point measurements. Length measurements are now saved in the length(perimeter) column of the results table, coordinates(points) are saved in the X and Y columns, and angles are stored in the Angles column.
13) Imported 8-bit images are no longer inverted. Use the following macro if you still want them to be inverted.
macro 'Import Inverted';
begin
Import('');
Invert;
end;
14) It is now possible to have live video while macros are running. For an example of how this might be useful, look at the new macro “Camera Simulator” in file More Macros.
15) Image now correctly saves in PICT format when using systems earlier than 6.0.5. Since there may be other problems with early systems, it would be a good idea to upgrade to System 6.0.5 or later.
16) The Rotate Left and Rotate Right commands now provide the option to put the result is a new window. When rotating the entire image(i.e., when there is no selection) this is done automatically and the original window is deleted.
17) A bug with the way macro errors are reported was fixed.
18) A ‘vers’ resource was added to provide version information in the Finder’s Get Info dialog box.
19) A macro was written for converting line plots to x-y coordinate pairs.
20) A bug was fixed which caused X-Y Center of Gravity, Major Axis, Minor Axis, and Angle to not be measured correctly when Record Preferences was used or when these options were set using macro commands.
V1.37 (25 March 1991)
1) The Delete Measurement command was fixed so that it now correctly deletes Area, Min, Max, Angle, Major Axis, and Minor Axis measurements.
2) A bug was fixed that caused the screen to be incorrectly updated when changing the size of text entered with the text tool from a large font size to one a lot smaller, for example changing from 72 point to 12 point.
3) Macro keyboard shortcuts now work correctly when the Caps Lock key is down.
4) A bug was fixed that caused parts of the Paste Control window to be copied if it overlapped the Histogram, Gray Map, or LUT window while one of these windows was being copied to the Clipboard.
5) In addition to the Gray Map and LUT windows, it is now possible to copy the Tool palette to the Clipboard.
6) A bug was fixed that caused the GetNumber macro routine to return erroneous values when the result was assigned to a global variable.
7) A bug was fixed that caused the Writeln macro routine to sometimes display garbage when called with no arguments.
8) Auto scaling can now be disabled and minimum and maximum values set for Imported text files and 16-bit images. Values outside the specified range are clipped.
9) The automatic density calibration of Imported 16-bit images, which provides an approximation of the original 16-bit pixel values, can now be disabled.
10) Save Preference now saves the settings in a file named “Image Prefs” in the System folder. Delete this file to revert to the default settings. The bug that caused Save Preferences to sometimes crash should now be fixed.
11) All settings in the Import dialog box, with the exception of Import All, are now saved by Save Preferences.
12) A check box was added to the Options dialog box which specifies whether or not headings are used when Exporting or Copying measurement results.
13) The macros for doing 3-D reconstruction were rewritten to be easier to use and more general.
14) A set of macros(“Line Plots->Data”) were written for converting hard-copy plots to (x,y) coordinate data.
V1.38 (15 May 1991)
1) A bug was fixed that caused incorrect tracking of the handle when resizing rectangular selections and the cursor had been moved above or to the left of the selection.
2) A bug was fixed that, in V1.37, caused imported MCID files to be inverted.
3) Image now displays an error message when attempting to open 24-bit color TIFF files.
4) A bug was fixed that caused 16-bit unsigned images with pixel values greater than 32767 to be imported incorrectly if Fixed Scale was checked.
5) Color TIFF files created by Image now store the color look-up table following the image, with a Color Map tag pointing to it. It is now possible to exchange color TIFF images with programs that support the TIFF color palette format, such as Adobe Photoshop.
6) A bug was fixed that sometimes caused “Print Measurements” to appear in the File menu instead of “Print Image” or “Print Selection”.
7) A new tool for selection lines was added. This tool can create straight, freehand or segmented line selections. A pop-up menu is used to specify the line type. The pop-up menu is accessed by clicking on the line selection tool icon and holding the mouse button down for at least 1/2 second. Once you have created a line selection, you can measure its length using the Measure command, draw the line using the Fill command, and outline the line(assuming line width is greater than 1) using the Draw Boundary command. With straight lines only, you can also generate density profile plots using the Plot Profile command, and dynamically vary the line width by clicking on the lines at the bottom of the tool palette.
Line selection can be moved in the same way as other region of interest selections by clicking inside the “marching ants” and dragging, although this has to be done carefully for one pixel wide lines. Lines selections can also be moved a pixel at a time using the arrow keys. Straight line selections have three handles drawn as small squares. The two at either end swing and stretch the line and the one in the center can be used to move the selection without changing its orientation.
Line selections can be edited in the same way as other selections by holding down the Control key to add a new selection or the Option key to subtract a new selection. Line selections, however, cannot be added or subtracted from previous selections. Once they have been edited, line selections revert to ordinary region of interest selections.
The ruler tool has reverted to a simple MacPaint-like drawing tool.
8) The Column Average Plot command was generalized and renamed Plot Profile. For rectangular selection higher than they are wide it now does a top to bottom Row Average Plot, where each point in the plot is the average of the corresponding row. It does a Column Average Plot if the selection is square or is wider that it is tall, or if the Option key is down. Plot Profile can also be used generate profile plots of the current straight line selection.
9) Several bugs involving the display of profile plots were fixed.
10) When printing measurements, the number of lines per page now varies depending on Page Setup settings. For example, 110 lines per page are now printed if Reduce or Enlarge is set to 50%.
11) A bug was fixed that could cause garbage to be displayed in the Gray Map window or Image to hang if both the brightness and contrast controls were at their maximum settings.
12) A problem was fixed that sometimes caused Image to crash when recording preferences, particularly when running under System 7.
V1.39
1) A bug was fixed that caused Image to quit unexpectedly when double clicking on the rectangular selection tool and no image windows were open.
2) Grayscale LUT functions can now be drawn freehand in the Gray Map window by holding down the option key.
3) Minimum and Maximum in the Profile Plot Options dialog box are no longer limited to 0 and 255.
4) Support was added for "stacks", which are three dimensional images consisting of two or more “slices”. Slices can be consecutive serial sections in a 3D data set, frames in a movie loop, or any related set of images. Stacks are displayed in a single window and can be saved to a single disk file.
The Make Movie and Run Movie(renamed Animate) commands were moved to the Stacks submenu and modified to work with stacks. Without the overhead of multiple windows, it is now practical to create and play back much longer movies than before. On a 20MB Mac running System 7 in 32-bit mode it is now easy to generate a movie consisting of 250 256X256 frames(16MB) at the rate of 7.5 frames per second, and to play it back at up to 40 frames per second. A new command called “Capture Frames” was also added that captures a frame and adds it to a stack each time the mouse button is pressed. Press any key to stop capturing frames.
The new Stacks submenu in the Special menu has several commands that deal with stacks:
Windows to Stack - Converts the set of images currently being displayed in separate windows to a stack. The images must all be the same size and must an even width.
Stack to Windows - Converts the currently active stack to windows. A stack with 20 slices would be converted to 20 normal image windows.
Add Slice - Adds a new blank slice to the stack following the currently displayed slice.
Delete Slice - Deletes the currently displayed slice. Undo will restore the last slice deleted.
Next Slice - Displays the slice following the currently displayed slice. Note that is not necessary to hold down the command key to use the keyboard shortcut, i.e., you only need to press the '>' key. You can also use the Page Down key.
Last Slice - Displays the slice before the currently displayed slice. As a shortcut, use the '< ' or Page Up keys.
Reslice - Reconstructs a 2D image from the image volume contained in the current stack. Use the straight line selection tool to select were the reconstruction will be done. You will be prompted for the slice thickness(displacement between slices in the stack) in pixels if this information has not been previously entered. To try out the Reslice command, a sample MRI volume consisting of 27 5mm slices is available via anonymous ftp from alw.nih.gov, in the directory /pub/image/image.
Reslice Option - Allows you to change the slice thickness.
5) The following new commands were added to the macro language to support stacks:
AddSlice Adds a slice following the current slice
DeleteSlice Deletes the current slice
Reslice
MakeNewStack(‘name’) Creates a new stack
SelectSlice(n) Display Nth slice in a stack
nSlices Returns number of slices in current stack
SliceNumber Returns number of current slice in a stack
Several examples macros that illustrate how to use these commands are in the “Stacks” file in “Macros” folder.
6) A bug in the macro interpreter was fixed that caused it to incorrectly reject Boolean arguments in procedure headings.
7) A command(AverageFrames) was added to the macro language to support frame averaging. Precede with SetOption(e.g., “SetOption; AverageFrames”) to do frame summation. Another command(WaitForTrigger) was added that waits for either an external trigger event on the QuickCapture card or for the mouse button to be pressed. The file “Video”, in the “Macros” folder, contains examples illustrating how to use macros to capture video.
8) The command “GetTime(year, month, day, hour, minute, second, dayofweek)” was added to the macro language. It returns the current date and time as 7 integers. There is an example macro in “More Macros” illustrating how to use GetTime to generate a file name.
9) The command “SetScale(scale, ’units’)” was added to the macro language for setting the spatial scale. ‘Scale” is the number of pixels per unit of measurement. ‘Units’ is one of the following: ‘nm’, 'µm', ‘mm’, ‘cm’, ‘me’, ‘km’, ‘in’, ‘ft’, ‘mi’, or ‘pixels’. Use SetScale(0,’pixels’) to disable spatial calibration and SetScale(0,’’) to activate the Set Scale dialog box.
10) The command “MakeLineRoi(x1,y1,x2,y2)” was added to the macro language for creating straight line selections.
11) The ColumnAveragePlot macro command was renamed PlotProfile.
12) The macro commands DoAnd, DoOr, DoXor, DoReplace, and DoBlend were modified so that they no longer terminate the paste operation when proceeded by SetOption, but simply switch to a different transfer mode. In addition, the command DoCopy was added so that it is now possible to write a set of macros to replace the pop-up menu in the Paste Control window.
V1.40 (26 June 1991)
1) Options in the Preferences dialog box that deal with video were moved into a new command called Video Options in the Special menu.
2) The input channels for the Scion frame grabber are now numbered 0 to 3 instead of 1 to 4.
3) A check box(Highlight Saturated Pixels) was added to Video Options that enables a new feature that, during live capture, causes all pixels that over saturate the camera(are too bright) to be displayed in green and all pixels that under saturate the camera(are too dark) to be displayed in red.
4) Set Scale now only requires that you create a line selection corresponding to a known distance. It is no longer necessary to use the Measure command.
5) Two new commands, SaveState and RestoreState, were added to the macro language for saving and restoring variables such as the foreground and background colors, new window width and height, and various Scale and Rotate parameters.
6) A version of Image(V1.40NonFPU) that does not require a floating-point coprocessor is now available. On machines that may lack a hardware FPU, such as the LC and si, this version should perform better than the standard version of Image used with PseudoFPU. On machines with a floating-point chip, this version will be slower than versions of Image that use the FPU directly.
7) Stacks(3D images or movies) can now be read by applications, such as DIP Station, that are able to read TIFF files with multiple images per file.
8) As an alternative to clipping at 0 and 255, a check box was added to the Preferences dialog box that enables scaling of convolutions results to 8-bits.
9) Several problems with Exporting in MCID format were fixed.
V1.41 (12 August 1991)
1) Analyze Particles now works with non-rectangular selections and with rectangular selections with boundaries that intersect particles.
2) The routine that computes Integrated density now does a somewhat better job of estimating the background level.
3) When Exporting measurements, plot values or histogram values, the default file name used now consist of the current image name followed by ‘Measurements’, ‘Plot Values’ or ‘Histogram’ in parenthesis.
4) Several bugs were fixed in the AddConstant, MultiplyByConstant and Print macro routines.
5) A bug was fixed that caused custom palettes to be written incorrectly when saving stacks.
6) The speed, in frames per second, is now computed and displayed while stacks are being animated. Also, Image “remembers” the speed when the Animate command is used more than once.
7) A new macro command(SetCounter) was added to the macro interpreter for setting the value of the measurement counter, making it easier to display, print or export results generated within a macro. A new macro named “Generate Calibration Table”, which exports the current calibration function as a tab-delimited text file, uses SetCounter.
8) Thanks to Mark Vivino at NIH, the Macros, Kernels, Palettes and Source folders now have System 7 compatible color icons.
9) A problem with switching to other applications while doing animation was fixed. Also, you can now type option-command-’=‘ to erase the screen and animate.
11) A problem was fixed that sometimes caused the computer to lock up when using the polygon tool. Also, when using MultiFinder or System 7, clicking outside the window with the polygon tool no longer causes a switch to the Finder.
12) Image can now open, as a stack, multiple image TIFF files. All images in the file must be the same size, must use the same color table, and must be even width. One program that reads and writes multiple image TIFF files is DIP Station, a Mac image processing program.
13) The TIFF and PICT document icons were changed so that they look better in the Finder’s View by Small Icon mode.
14) To avoid potential conflicts with another application, the four byte signature(creator type) for Image was changed from ‘IMAG’ to ‘Imag’. Image files saved with V1.41(or later) will have the new icons with a white background. Starting with V1.41, you must use the Open command within Image to open files created by earlier versions of the program. Double-clicking on a file with the new icon will launch V1.41(or later). Double-clicking on a file with the old icon will launch an earlier version. You can make a file compatible with V1.41(and change its icon) by opening it from within V1.41 and resaving it.
15) A new field (Pixel Aspect Ratio) was added to the Set Scale dialog box to support different horizontal and vertical spatial scales, for example 100 pixels/cm horizontally and 95 pixels/cm vertically. As before, use the line selection tool and the Set Scale dialog box to calibrate to a known horizontal distance. Then enter the pixel aspect ratio into the Pixel Aspect Ratio field. To find the pixel aspect ratio, use Image to measure the width and height of a digitized object with a known 1:1 aspect ratio. The pixel aspect ratio is computed by dividing the width(in pixels) by the height(in pixels).
16) A bug was fixed in the GetMouse macro routine which caused it to return invalid coordinates when the active image was magnified or repositioned.
17) A submenu was added to the Enhance menu for removing smooth continuous backgrounds from gels and other images. The rolling ball and rolling disk algorithms were inspired by Stanley Sternberg’s article, “Biomedical Image Processing”, IEEE Computer, January 1983. The routines were written by Michael Castle and Janice Keller of the University of Michigan Mental Health Research Institute.
1D Horizontal - Rolls an arc(rolling arc) horizontally under each row(shrunk 2 or 4 times) of the image in order to remove the background.
1D Vertical - Rolls an arc(rolling arc) vertically under each column(shrunk 2 or 4 times) of the image in order to remove the background.
2D Rolling Ball - Rolls a patch from the top of a sphere(rolling ball) under every point in the image(shrunk 4 or 8 times) in order to find the background.
2D Remove Streaks - Gets rid of horizontal and vertical streaks as it removes background by calling 1D Horizontal and 1D Vertical consecutively.
Faster - When checked, the image is shrunk 8 times(instead than 4) for 2D rolling ball subtraction, and lines or columns are shrunk 4 times(instead of 2) when doing 1D subtraction.
Set Radius - Offers a dialog box to set the rolling ball or disk radius. Generally, the disk/ball radius should be at least as large as the width/diameter of the largest object in the image that is not part of the background.
18) A bug was fixed that could cause a crash when opening a PICT file on a disk with bad blocks.
19) A bug was fixed in the (straight) line selection tool that could sometimes cause extraneous lines selections or system crashes.
20) Three built-in read/write arrays(RedLUT, GreenLUT, and BlueLut) were added to the macro language to provide access to the video lookup table(LUT) associated with each open image. These arrays use indexes in the range 0-255 and return intensity values in the range 0-255. Several macros(in “LUT Macros”) were written that use these arrays, including a macro to export the current LUT as a text file, macros to load log, square and square root functions into the LUT, a macro to plot the current LUT, a macro to display RGB pixel values, and a macro to load a grayscale step function(“Posterize”) into the LUT.
21) A command(ShowMessage) was added to the macro language for displaying text and numbers in the Results window. It accepts the same arguments as the writeln command(e.g. ShowMessage(‘i=‘,i,’\j=‘,j) ). Use a back slash(‘\’) to start a new line.
V1.42 (20 December 1991)
1) The freehand outlining tool is now somewhat more responsive, particularly when background programs such as Print Monitor are running.
2) The binary thinning routine(Skeletonize) was improved.
3) A command was added to the Binary submenu to specify the number of adjacent background or foreground pixels necessary before a pixel is removed from or added to the edge of objects during binary erosion and dilation operations.
4) A bug was fixed that sometimes caused the 3D Plot command to display a blank window.
5) Grayscale images inverted using the Invert LUT command now print correctly.
6) A bug was fixed that sometimes caused color TIFF files exported to other applications to have incorrect color palettes.
7) The Adjust Areas option in the Options dialog box, which had stopped working, was fixed. This option is used by the gel plotting macros to account for the area under the line used to draw the peaks.
8) A bug was fixed that caused Image to crash when using the Start Capturing command(using the QuickCapture card) after a previous attempt to start capturing had resulted in an out of memory message.
9) The maximum allowed width for imported 8-bit images was increased to 16000 pixels.
10) The Profile Plot Options, Option and Calibrate dialog boxes were redesigned and/or repositioned to fit on the 12” Apple color monitor.
11) A bug was fixed that sometimes, when running under System 7, caused the icons in the tool palette to be replaced by letters.
12) Stacks are no longer required to be an even width.
13) An Uncalibrated OD option was added to the Calibrate dialog box that causes Image to convert gray values to uncalibrated optical density values using the following function:
Uncalibrated OD = log10(255 / (255 - Gray Value))
You do not need to measure OD standards or enter known OD values to enable this transformation.
14) A button was added to the Calibrate dialog box that performs the following function on the entered(known) standards:
Inverted OD = -log10(1.000 - 10^(-Entered OD))
Optical densities are converted to transmission, subtracted from perfect transmission and converted back to OD yielding the reciprocal density. This function is of use to those who have a positive set of optical density standards but a photographic or other negative image. It is also of use to those who quantitate reflected light images but wish to specify results in terms of transmitted light. This is often the case in anatomical imaging.
15) A problem was fixed that caused multi-image TIFF files imported from DIP Station to have all but the first slice inverted.
16) The number of colors allowed in pseudocolor palettes was increased from 32 to 256.
17) The controls in the Gray Map window(which was renamed Map) now manipulate both pseudocolor and grayscale look-up tables.
18) The Set Number of Colors command now creates new color table entries by interpolating. For example, if the current color table consists of the two colors, white and black, then setting the number of colors to 64 creates a grayscale palette with 64 shades of gray.
19) The magnifying glass tool now automatically enlarges small(less than 320 pixels wide) windows. You can override this behavior by resizing the window before using the magnifying glass.
20) The (straight) line selection tool now works more precisely at higher levels of magnification. It is now possible, for example, to measure the diagonal length(1.41 pixels) of a one pixel square object.
21) A bug was fixed that caused the air brush tool to work incorrectly with magnified images.
22) Image now reads(Open) and writes(Save As)PICS files, a file format used by most Mac animation programs. PICS files are compressed using the same run length encoding scheme used for PICT files. As a result, stacks containing areas of uniform color or gray value saved in PICS format will be smaller than stacks saved in TIFF format.
23) A bug was fixed that sometimes caused the MoveRoi and InsetRoi macro routines to not work correctly.
24) A built-in one-dimensional array(rStdDev) was added to the macro language for accessing standard deviation measurements.
25) There is a new macro(in “Stacks”) called “Make Same Size” that makes the width and height of all currently open images the same so the Windows to Stack command(which requires images to be the same size) can be used to convert them into a stack.
26) A bug was fixed that caused the Measure command to count all pixels within the selection, instead of only thresholded pixels, if Include Interior Holes was checked in the Options dialog box.
27) A bug(introduced in V1.40) was fixed that caused the Save All command(Save with Option key) to fail.
28) A bug was fixed that caused the MakeNewStack macro routine to fail if no window was open.
30) The Text menu was replaced by the Stacks menu, and the Font, Size, and Style submenus were moved to the Options menu.
31) Image now supports the Scion Image Video Image 1000 frame grabber card on Mac IIci’s with a NuBus video card. This requires a Video Image 1000 that has upgraded chips installed. All boards shipped since 9/1/91 contain the upgraded chips.
32) Tab-delimited text files using scientific notation can now be imported as images using the Import command.
33) The Reslice command now works with line selections(except for horizontal and vertical selections) that extend beyond the edge of the image. The current background color is used for missing pixel values.
34) The maximum number of slices in a stack was increased from 250 to 256.
35) Two new commands, GetSliceSpacing and SetSliceSpacing, were added to the macro language for getting and setting the slice spacing of image volumes. Two new macros in the file Stacks, Reslice Horizontally and Reslice Vertically, illustrate the use of these new commands.
36) A new command(Project) was added to the Stacks menu that generates an animation sequence by projecting a rotating 3D data set onto a plane. Each frame in the animation sequence is the result of projecting from a different viewing angle. Three projection methods are available: nearest-point, brightest-point, and mean-value. The choice of projection method and the settings of various visualization parameters determine how both surface and interior structures will appear. This routine was written by Michael Castle (mike.castle@med.umich.edu) and Janice Keller of the University of Michigan Mental Health Research Institute (MHRI).
37) A bug was fixed that caused imported 16-images to use twice the expected amount of memory. For example, an imported 1024 x 1024 16-bit image used 2MB instead of 1MB.
V1.43 (6 January 1992)
1) A bug was fixed that sometimes caused Image to crash on the Quadra 700 or 900 while capturing using the Data Translation QuickCapture card and the Camera window was moved or resized .
V1.44 (2 April 1992)
1) The XY coordinates of selections created with the polygon, freehand, line, and wand tools can now be exported to a text file.
2) A bug was fixed that caused PICS files with PICTs that varied in size to be read incorrectly.
3) The size of the line buffers used by Image were increased from 2048 to 4096 pixels, allowing many operations(e.g. filters, histogram, profile plots) to operate on wider selections.
4) A problem was fixed that sometimes caused color TIFF images imported from little endian(Intel or VAX) systems to be displayed incorrectly.
5) A problem was fixed that caused histograms to be incorrectly displayed for images with uniform gray values.
6) Custom halftoning options are now saved by Record Preferences.
7) A bug was fixed in the Project command that sometimes caused Image to abort when doing volume rendering, particularly when rotating around the z-axis.
8) A built-in array(LineBuffer) was added to the macro language to provide access to the internal line buffer used by GetRow, PutRow, GetColumn and PutColumn.
9) The spatial scale can now be entered directly into the Scale field of the Set File dialog box. Also, it is no longer necessary to make a line selection before using the Set Scale command.
10) The Rodbard fit option was returned to the Calibrate dialog box.
11) A bug was fixed in the GetResults macro routine that caused it to return calibrated mean and mode values when it was supposed to return uncalibrated values.
12) Selection outlines(except curved line selections and selections that have been edited) can now be saved using Save As and restored using Open.
13) A check box(Scale Math) was added to the Paste Control window
to specify whether results of image arithmetic operations are scaled to 8-bits or clipped at 0 and 255. This new check box performs the same function as Scale Image Arithmetic in the Preferences dialog box.
14) A check box(Update Icons) was added to the Open dialog box for changing the creator type of files created by V1.40 and earlier of Image from ‘IMAG’ to ‘Imag’. Image will update the creator type of all files in the current folder when you click on Open with Update Icons checked. Files with the new ‘Imag’ creator type have icons with a white background and launch the latest version of Image when you double-clicking on them.
15) A bug was fixed that sometimes caused an unexpected dialog box to be displayed when using the Convolve command with density sliced images.
16) A bug was fixed that caused printed output to be incorrectly positioned when printing a selection and Black & White was checked in the Print dialog box and Custom Grayscale Halftoning was not checked in Preferences.
17) A bug was fixed that caused odd-width selections exported as raw data to be skewed.
18) Look-up tables can now be rotated using the LUT tool(a feature removed in V1.42) if the option key is held down. This feature is particularly useful with the new Spectrum palette.
19) A bug was fixed that sometimes caused the "time remaining" value displayed in the Project(3D reconstruction) thermometer box to not work properly.
20) A bug was fixed that caused images resulting from projecting around the x-axis of odd-width stacks to be skewed.
21) A bug was fixed that caused data from the last slice in a stack to appear at both the top and bottom of an images reconstructed from that stack using the Reslice command.
22) A black diamond is now displayed in the title bar of spatially calibrated images and a white diamond(◊) for those that are density calibrated.
23) A new check box(Use External Trigger) was added to the Video Options dialog box that enables support for the external trigger feature of the Data Translation QuickCapture card. The StartCapturing, Average Frames, and Make Movie commands now support external triggering. Another new check box(“Blind” Movie Capture) disables screen updates when using the Make Movie command, allowing faster frame capture rates.
24) Average Frames now displays a dialog box that allows the user to enter the number of frames to be averaged and to specify whether the frames are to be summed or averaged. In addition, the number of frames is no longer limited to 128. There is, however, a possibility of overflow when averaging more than 128 frames since frames are summed in a 16-bit signed integer buffer.
25) Commands were added to the macro interpreter for propagating the LUT(PropagateLUT), spatial calibration(PropagateSpatial) and density calibration(PropagateDensity).
26) A command(“RequiresVersion(version)”) was added to the macro interpreter to allow testing for a required version of Image. For example, a macro containing the statement “Required version(1.44)” will abort if run on a version of Image earlier than 1.44.
27) Two new measurement options(User 1, and User 2) were added to the Options dialog box. These options add two new columns to the results table that can be used by user written macros to record derived results. These two columns can be accessed from within macros using the built-in arrays rUser1 and rUser2. Unlike other results arrays, rUser1 and rUser2 are reserved for use by macros, and are never written to by any of the commands in Image. The column headings used for User1 and User2 can be set from within macros using the routines SetUser1Label(‘Label’) and SetUser2Label(‘Label). The macros in “Measurement Macros” have been rewritten to store derived results in User1 and User2.
28) A new macro command(SetOptions) was added to the macro interpreter for specifying variables to be recorded by the Measure and Analyze Particles commands. SetOptions has the form SetOptions(string), where string is a text string containing some combination of ‘Area’, ‘Mean’, ‘Std. Dev.’, ‘X-Y Center’, ‘Mode’, ‘Perimeter’(or ‘Length’), ‘Major’, ‘Minor’, ‘Angle’, ’Int. Den.’, ‘Min/Max’, ‘User1’, or ‘User2’. Any variables not listed will be disabled. For example, the statement “SetOptions(‘Area, X-Y Center’)” causes Measure and Analyze Particles to compute and store area and the X-Y Center, and nothing else.
29) The “Results” window was renamed “Values” and the “Measurements” window was renamed “Results”.
30) The eye dropper tool now displays pixel values in RGB form.
31) Selections created with the wand tool are now added to any existing selection if either the Shift or Control keys are held down and are subtracted from any existing selection if the Option key is held down.
32) In addition to the Control key, the Shift key can now be used to extend selections when using the freehand and polygon tools.
33) The “Show 0 for Black, 255 for White” flag in Preferences was renamed “Invert Displayed Pixel Values”.
V1.45 (27-July-1992)
1) A bug was fixed that could cause Image to crash after creating a stack from a set of windows, one of which is the Camera Window.
2) The Rotate Right and Rotate Left commands no longer convert stacks to a single image.
3) A new command(Montage) for creating a composite image from the slices in stack was added to the Stacks menu.
4) A bug was fixed that caused Revert to Saved to invert imported 8-bit images.
5) A bug was fixed that caused macros(e.g. “Measure All”) making density measurements on more than one density calibrated image to generate incorrect results.
6) Image now provides better approximations of the original 16-bit values when importing 16-bit images with Calibrate checked. The approximated values should not vary from the original 16-bit values by more than (Max-Min)/254, where Min and Max are the minimum and maximum 16-bit values.
7) A bug was fixed that prevented saving of outlines when the active window was a stack.
8) A command was added to the macro language for doing background subtraction. It has the form SubtractBackground(‘Options’, BallRadius), where ‘Options’ is one of the following: ‘1D Horizontal’, ‘1D Vertical’, ‘2D Rolling Ball’ or ‘2D Remove Streaks’. Add the keyword ‘faster’ to the Options string(e.g. ‘2D Rolling Ball(faster)’) for faster operation.
9) A bug was fixed that caused the contrast slide control in the Map window to work incorrectly at either very high or very low brightness settings.
10) A bug was fixed that could cause Analyze Particles to fail when the current background color was not white.
11) A bug was fixed that sometimes caused the results counter to not be reset when using Analyze Particles.
12) The pixels used to generate the profile plot are now highlighted if you hold down the mouse button and drag in the Plot window.
13) PICT files scanned on flatbed scanners at greater than 72dpi resolution now open correctly. For example, a one inch square area scanned at 300dpi now opens as a 300x300 image instead of a 72x72 image.
14) The Get Info command now shows which version of Image created the image.
15) The Enhance Contrast command now works with pseudo-colored images.
16) A macro for creating lookup table gamma functions was added to the LUT Macros file in the Macros folder.
17) The Subtract Background routine now smoothes the image before shrinking it. To shrink by a factor of 8 it uses the lowest pixel value in the 8x8 neighborhood, making it very susceptible to noise unless the image is first smoothed. I was also changed to shrink the image by a factor of 2 or 4 (instead of 4 or 8) when the radius is 15 or less.
18) A bug was fixed in Redo Measurement that caused the Cancel button to work the same as the OK button.
19) The Threshold command now automatically determines the optimum threshold using an Iterative technique first described by Ridler and Calvard in IEEE transactions on Systems, Man and Cybernetics, 1978. This feature is available from macros using the new AutoThreshold command.
20) A command was added to the macro language for specifying what gets exported when using the Export command. It has the form “SetExport(‘mode’)”, where ‘Mode’ is one of the following: ‘Raw’, ‘MCID’, ‘Text’, ‘LUT’, ‘Measurements’, ‘Plot Values’, Histogram Values’ or ‘XY Coordinates’.
21) The SaveAs and Export macro commands now accept a file name argument.
22) Redirected sampling now works with rectangular selections.
23) XY Coordinates of line selections created on zoomed images are now exported correctly.
24) A bug(introduced in V1.44) was fixed that caused the perimeter to be computed incorrectly for zoomed images.
25) Profile plots now start at the point where the mouse is first clicked rather than at the left end of the line selection. A new macro called “Plot Radial Density Profiles” in the file “Measurement Macros” illustrates this new capability.
26) The SetDensitySlice macro command no longer allows the lower threshold to be set less than 0 or the upper threshold to be set to more than 254. Setting the lower threshold to 0 could cause Image to crash when using Analyze Particles.
27) The slice spacing used by the Reslice command is now specified in calibrated units, such as millimeters.
29) Macros(in “Stacks”) were written to import GE Signa MRI volumes and to do reslicing(e.g. generate coronals from sagital slices). The macros assume 256x256 slices with a 240mm field of view.
30) Support was added for the new Scion LG-3 frame grabber card. The LG-3 is similar to the Data Translation QuickCapture card, but has more features and is less expensive. It has analog brightness and contrast control plus a frame buffer that can be expanded up to 64MB using standard Mac SIMMS. These features, however, are currently not supported by Image.
V1.46b36 Beta (never released)
1) A bug was fixed that could potentially cause problems when using the Scion LG-3 frame grabber.
2) The line selection and profile plotting tools now force the starting and ending coordinates to be within the image boundary. This fixes a problem that sometimes caused the starting or ending profile plot values to be invalid when doing profile plots on zoomed images.
3) The “Highlight Saturated Pixels” option in the Video Options dialog box now displays over saturated pixels in red under saturated pixels in blue.
4) The analog video input offset(brightness) and gain(contrast) can now be adjusted in the Video Options dialog box while capturing using the Scion LG-3 frame grabber.
5) The Analyze Particles command no longer disables particle labeling when there are more than 200 particles.
6) New commands(“RGB to 8-bit Color” and “8-bit Color to RGB”) were added to the Stacks menu for converting RGB color images(in the form of a three slice stack) to 8-bit indexed color and 8-bit color images into RGB.
7) Bugs were fixed that could cause the Make Movie and Capture Frames commands to fail when using the Scion LG-3 frame grabber.
8) On multi-monitor systems, windows are no longer limited to the size of the primary monitor .
9) A bug was fixed that caused Make Movie and Capture Frames to work incorrectly with selections larger than 552X436 on 13 inch monitors.
10) A bug was fixed in the Open and Import macro routines that sometimes caused images to not be displayed.
V1.47 (22 Oct 1992)
1) 24-bit RGB color images can now be captured. This requires an RGB color camera with a separate composite sync outlet. When using the Scion LG-3 frame grabber the optional four channel cable(CRGB-LG3) is required and “Separate Sync” must be checked in Video Control. With the Data Translation QuickCapture, the W5 jumper must be installed and the red, green, blue and sync camera outputs connected to the QuickCapture cables 1, 0, 2 and 4 respectively. Color capture requires System 7 and Image must be allocated at least four megabytes of RAM.
2) 16-bit to 8-bit rescaling(windowing and leveling) of 16-bit imported images is now supported. A new command called Rescale replaces Revert to Saved whenever an imported 16-bit image is active. It linearly scales the 16-bit data(on disk) from the range Min-Max to 1-254, where Min and Max are specified using the controls in the Map window or by using the LUT tool. 16-bit pixels with values less than Min are set to 1 and 16-bit pixels with values greater than Max are set to 254. The computed absolute minimum and maximum pixel values will be used if the LUT has not been altered. Enabling “Highlight Saturated Pixels” in the Preferences dialog box causes pixels that were less than or equal to Min to be blue and pixels that were greater than or equal to Max to be red.
3) A command(InverLUT) was added to the macro language for inverting the video look-up table.
4) Support was added for the 50 Hz(PAL or CCIR) version of the Scion LG-3 frame grabber, which captures 768 X 512 frames.
5) A command was added to the macro interpreter for accessing user written Pascal code in the User.p source code module. It has the form “UserCode(CodeNumber, Param1, Param2, Param3)”, where CodeNumber is a positive integer used to specify which code routine is called and Param1, Param2 and Param3 are real input parameters.
6) A bug was fixed that caused the Measure and Analyze Particles commands to compute angles incorrectly for objects at exactly 45 or 135 degree angles.
V1.48b77(never released)
1) The Rotate Right and Rotate left commands are now much faster thanks to a new PutColumn routine contributed by Edward J. Huff.
2) Selections larger than the undo buffer can now be saved in TIFF format and exported as raw data.
3) A bug was fixed that could sometimes cause the spatial scale to change if you clicked in the Scale field of the Set Scale dialog box.
4) The macro interpreter was speeded up and the run-time macro error messeges were improved.
5) A bug(introduced in V1.47) was fixed that caused the Measure and Analyze Particles commands to display NAN(Not a Number) for the major and minor axis for perfectly round objects. Note that the Major and minor axis are still incorrect for one pixel wide diagonal objects.
6) The X-Y coordinates of the current selection are now available from within macros using the built-in arrays xCoordinates[n] and yCoordinates[n]. The number of coordinates can be obtained using the macro function nCoordinates. For an example, look at the macro “Plot X-Y Coordinates” in “Measurement Macros”.
7) A string data type was added to the macro interpreter. Strings have a maximum length of 255 characters and string comparisons are case insensitive. Three functions were also added:
str:=GetString(‘Prompt’[,’default’) - Puts up a dialog
box requesting string input. The first argument is the
prompting message and the second(optional) argument
is the default input string.
str:=chr(n) - Converts a positive integer in the range
0..255 to a one character string(e.g. chr(65) = ‘A’).
n:=ord(str) - Returns the ordinal number of the first
character in a string(e.g. ord(‘A’)=65). Returns -1 if the
string is empty.
str:=concat(str1, str2,...) - Takes a series of strings
and concatenates them.
Example macros illustrating the use of strings are available in the file “Serial I/O and Strings”.
8) Three new routines were added to the macro interpreter to support Serial I/O:
OpenSerial(‘Options’) - ‘Options’ is a string containing
‘1200 baud’, ‘2400 baud’, ‘9600 baud’ or ‘19200 baud’;
‘no parity’, ‘even parity’ or ‘odd parity’; ‘seven data’ or
‘eight data’; ‘One stop’ or ‘two stop’. The default is
‘9600 baud, no parity, eight data, one stop’.
str:=GetSerial - Returns the next available character in
the serial(modem) input buffer as a one character string
or returns an empty string if the buffer is empty.
PutSerial(str) - Writes ‘str’ to the modem port. Like the
Macros could be written using these routines to control a motorized stage or to control a VCR to play back time lapse video. Example macros illustrating serial I/O are available in the file “Serial I/O”.
9) An optional second argument was added to the SetPrecision macro command to specify the field width used in the results window.
10) A new macro command was added for changing the cursor. It has the form SetCursor(‘str’), where ‘str’ is ‘watch’, ‘cross’ or ‘arrow’.
11) The macro interpreter’s stack size was increased from 100 to 150 variables.
12) The macros in More Macros(“AND Mode”, “OR Mode”, etc) that allow you to easily switch transfer modes while pasting are now working again. They broke in V1.44.
13) Compute bound macros now allow background tasks(e.g. System 7 file sharing or Retrospect Remote) to run.
14) Macros looping within a REPEAT UNTIL statement can now be aborted using Command-Period.
15) The maximum size of macro files was increased from 15,000 to 30,000 bytes.
16) A macro(in “Serial I/O”) was written to send commands over the serial port to the Newport PMC200-P programmable 2-axis motion controller. Instructions on how to connect the PMC200-P to the Mac modem port are contained in a comment at the beginning of the macro.
17) A function(TickCount) was added to the macro language that returns the current number of ticks(sixtieths of a second) since the system last started.
18) Undo now works with palettes that have been edited by double clicking in the LUT window with the eye dropper tool.
19) The angle measurement tool now creates a line selection instead of drawing lines.
20) A bug was fixed that could cause objects to be drawn outside of the image window boundary when opening object oriented PICT files created by drawing programs such as MacDraw.
21) The AverageFrames macro command no longer displays a dialog box.
22) A bug was fixed that, when thresholding, caused pixels with a value equal to the threshold to be displayed in white(background) instead of black.
23) A new command was added to the Stacks menu that creates an image that is the average of all the slices in the current stack.
24) A new command was added to the macro language for setting various Video Control options. It has the form SetVideo(‘str’), where ‘str’ is a string containing some combination of ‘Invert, ‘Highlight’, ‘Oscillating’, ‘Trigger’, ‘Blind’ or ‘Separate’. Any option not specified is disabled.
25) Several problems that relate to thresholding of pseudo colored images were fixed.
26) Profile plotting now works with irregular line selections.
27) The axis labeling of density profile plots was improved.
28) The Average Frames command can now use the Scion LG-3’s on-board memory to capture frames at video rates(25 or 30 frames per second). For example, when averaging 32 frames, the frames are captured in one second instead of 15-25 seconds. It will still take 15-25 seconds, however, to compute the average. A 4MB LG-3 can capture 8 frames at video rates and one with 16MB can capture 32.
29) The Gel Plotting macros were modified to work with the wider right margin in the in V1.48 Plot window. Also, the macros now display “Uncalibrated” at the top of the “Plots” window for uncalibrated gels.
V1.49b5
1) The preferences item called "Load System LUT when switching" is now recorded when you do a record preferences.
2) Thanks to Edward J. Huff, balloon help is now available in the Tools, Map and LUT windows, and for some of the menu commands.
3) A a new function was added to the macro language for converting strings to real numbers. It has the form: n:=StringToNum(s), where n is a real number and s is a string. It returns zero if the string contains no digits. StringToNum can be used to get around the seven digit limit on the precision of numeric constants(they are stored as four byte reals). For example,